/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.scrumpmt.web.producto;

import java.util.Date;
import java.util.logging.Level;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.scrumpmt.domain.Colaborador;
import org.scrumpmt.domain.Proyecto;
import org.scrumpmt.ejb.ColaboradorFacade;
import org.scrumpmt.ejb.ProyectoFacade;
import org.scrumpmt.web.BasicBean;

/**
 *
 * @author aljiru
 */
@ManagedBean
@RequestScoped
public class NuevoProductoBean extends BasicBean {
    private ColaboradorFacade colaboradorFacade = lookupColaboradorFacade();
    private ProyectoFacade proyectoFacade = lookupProyectoFacade();
        
    private String nombre;
    private String des;
    private Date fecini;
    private Date fecfin;
    private String nomcli;
    private int horas;
    private String colaborador;
    private FacesContext context = null;

    /**
     * Creates a new instance of NuevoProductoBean
     */
    public NuevoProductoBean() {
        context = FacesContext.getCurrentInstance();
    }

    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
    }

    public Date getFecfin() {
        return fecfin;
    }

    public void setFecfin(Date fecfin) {
        this.fecfin = fecfin;
    }

    public Date getFecini() {
        return fecini;
    }

    public void setFecini(Date fecini) {
        this.fecini = fecini;
    }

    public int getHoras() {
        return horas;
    }

    public void setHoras(int horas) {
        this.horas = horas;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getNomcli() {
        return nomcli;
    }

    public void setNomcli(String nomcli) {
        this.nomcli = nomcli;
    }

    public String getColaborador() {
        return colaborador;
    }

    public void setColaborador(String colaborador) {
        this.colaborador = colaborador;
    }

    public String submit() {
        if (nombre != null && des != null && fecini != null && fecfin != null && nomcli != null && colaborador != null) {
            Proyecto proyecto = new Proyecto();
            proyecto.setNombre(nombre);
            proyecto.setDes(des);
            proyecto.setFecini(fecini);
            proyecto.setFecfin(fecfin);
            proyecto.setNomcli(nomcli);
            proyecto.setHorasJornada(horas);
            Colaborador col = colaboradorFacade.find(Long.parseLong(colaborador));
            proyecto.setIdScrumMaster(col);
            proyecto.setActivo(1);
            proyectoFacade.create(proyecto);
            if (context != null) {
                return ("listado");
            } else {
                return "" + proyecto.getId();
            }
            
        }
        return ("");
    }
    
    private ProyectoFacade lookupProyectoFacade() {
        try {
            Context c = new InitialContext();
            return (ProyectoFacade) c.lookup("java:global/ScrumPMT/ScrumPMT-ejb/ProyectoFacade!org.scrumpmt.ejb.ProyectoFacade");
        } catch (NamingException ne) {
            log.log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }
    
    private ColaboradorFacade lookupColaboradorFacade() {
        try {
            Context c = new InitialContext();
            return (ColaboradorFacade) c.lookup("java:global/ScrumPMT/ScrumPMT-ejb/ColaboradorFacade!org.scrumpmt.ejb.ColaboradorFacade");
        } catch (NamingException ne) {
            log.log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }
}
